home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 70436 / 70436.xpi / install.js < prev    next >
Text File  |  2010-01-06  |  3KB  |  112 lines

  1. var XpiInstaller = {
  2.  
  3.     extFullName: 'FireTvLive.com Menu', 
  4.     extShortName: 'auron', /
  5.     extVersion: '1.0.0',
  6.     extAuthor: 'aur0n',
  7.     extLocaleNames: null, // e.g. ['en-US', 'en-GB']
  8.     extSkinNames: null, // e.g. ['classic', 'modern']
  9.     extPostInstallMessage: 'Installation was successful.Please restart Firefox now.', 
  10.     
  11.     profileInstall: true,
  12.     silentInstall: false,
  13.     
  14.     install: function()
  15.     {
  16.         var jarName = this.extShortName + '.jar';
  17.         var profileDir = Install.getFolder('Profile', 'chrome');
  18.         
  19.         this.parseArguments();
  20.         
  21.         if (File.exists(Install.getFolder(profileDir, jarName)))
  22.         {
  23.             if (!this.silentInstall)
  24.             {
  25.                 Install.alert('Updating existing Profile install of ' + this.extFullName + ' to version ' + this.extVersion + '.');
  26.             }
  27.             this.profileInstall = true;
  28.         }
  29.         else if (!this.silentInstall)
  30.         {
  31.             // Ask user for install location, profile or browser dir?
  32.             this.profileInstall = Install.confirm('Install ' + this.extFullName + ' ' + this.extVersion + ' to your Profile directory (OK) or your Browser directory (Cancel)?');
  33.         }
  34.         
  35.         // Init install
  36.         var dispName = this.extFullName + ' ' + this.extVersion;
  37.         var regName = '/' + this.extAuthor + '/' + this.extShortName;
  38.         Install.initInstall(dispName, regName, this.extVersion);
  39.         
  40.         // Find directory to install into
  41.         var installPath;
  42.         if (this.profileInstall) installPath = profileDir;
  43.         else installPath = Install.getFolder('chrome');
  44.         
  45.         // Add JAR file
  46.         Install.addFile(null, 'chrome/' + jarName, installPath, null);
  47.         
  48.         // Register chrome
  49.         var jarPath = Install.getFolder(installPath, jarName);
  50.         var installType = this.profileInstall ? Install.PROFILE_CHROME : Install.DELAYED_CHROME;
  51.         
  52.         // Register content
  53.         Install.registerChrome(Install.CONTENT | installType, jarPath, 'content/' + this.extShortName + '/');
  54.         
  55.         // Register locales
  56.         for (var locale in this.extLocaleNames)
  57.         {
  58.             var regPath = 'locale/' + this.extLocaleNames[locale] + '/' + this.extShortName + '/';
  59.             Install.registerChrome(Install.LOCALE | installType, jarPath, regPath);
  60.         }
  61.         
  62.         // Register skins
  63.         for (var skin in this.extSkinNames)
  64.         {
  65.             var regPath = 'skin/' + this.extSkinNames[skin] + '/' + this.extShortName + '/';
  66.             Install.registerChrome(Install.SKIN | installType, jarPath, regPath);
  67.         }
  68.         
  69.         // Perform install
  70.         var err = Install.performInstall();
  71.         if (err == Install.SUCCESS || err == Install.REBOOT_NEEDED)
  72.         {
  73.             if (!this.silentInstall && this.extPostInstallMessage)
  74.             {
  75.                 Install.alert(this.extPostInstallMessage);
  76.             }
  77.         }
  78.         else
  79.         {
  80.             this.handleError(err);
  81.             return;
  82.         }
  83.     },
  84.     
  85.     parseArguments: function()
  86.     {
  87.         // Can't use string handling in install, so use if statement instead
  88.         var args = Install.arguments;
  89.         if (args == 'p=0')
  90.         {
  91.             this.profileInstall = false;
  92.             this.silentInstall = true;
  93.         }
  94.         else if (args == 'p=1')
  95.         {
  96.             this.profileInstall = true;
  97.             this.silentInstall = true;
  98.         }
  99.     },
  100.     
  101.     handleError: function(err)
  102.     {
  103.         if (!this.silentInstall)
  104.         {
  105.             Install.alert('Error: Could not install ' + this.extFullName + ' ' + this.extVersion + ' (Error code: ' + err + ')');
  106.         }
  107.         Install.cancelInstall(err);
  108.     }
  109. };
  110.  
  111. XpiInstaller.install();
  112.